package ch.supsi.gavdat.elevator.model;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class Ascensore extends PersistentObject{
	
	private Date dataInstallazione;
	
	private Edificio edificio;
	private Modello modello;
	
	private List<Spostamento> spostamenti = new ArrayList<Spostamento>();
	private List<Intervento> interventi = new ArrayList<Intervento>();
	
	public Ascensore(Date dataInstallazione, Edificio edificio, Modello modello) {
		super();
		this.dataInstallazione = dataInstallazione;
		this.edificio = edificio;
		this.modello = modello;
	}
	
	public Date getDataInstallazione() {
		return dataInstallazione;
	}
	public void setDataInstallazione(Date dataInstallazione) {
		this.dataInstallazione = dataInstallazione;
	}
	
	public Edificio getEdificio() {
		return edificio;
	}
	public void setEdificio(Edificio edificio) {
		this.edificio = edificio;
	}
	
	public Modello getModello() {
		return modello;
	}
	public void setModello(Modello modello) {
		this.modello = modello;
	}
	
	public List<Spostamento> getSpostamenti() {
		return spostamenti;
	}
	public void setSpostamenti(List<Spostamento> spostamenti) {
		this.spostamenti = spostamenti;
	}
	
	public void addSpostamento(Spostamento spostamento){
		spostamenti.add(spostamento);
	}
	
	public List<Intervento> getInterventi() {
		return interventi;
	}
	public void setInterventi(List<Intervento> interventi) {
		this.interventi = interventi;
	}
	
	public void addIntervento(Intervento intervento){
		interventi.add(intervento);
		intervento.setAscensore(this);
		intervento.getTecnico().getInterventi().add(intervento);
	}
	
	@Override
	public String toString(){
		SimpleDateFormat sdf = new SimpleDateFormat("d MMMM yyyy");
		return "Modello: "+modello+" installato il "+sdf.format(dataInstallazione)
				+"\n  Contatto: "+ edificio
				+"\n  Interventi:"+interventi.size()
				+"\n  Spostamenti:"+spostamenti.size();
	}
	
}
